// vim: ft=javascript

ARG_WITH("xsl", "xsl support", "no");

if (PHP_XSL != "no") {
	if (PHP_DOM == "yes" && PHP_LIBXML == "yes"
	&& ADD_EXTENSION_DEP('xsl', 'libxml')
	&& ADD_EXTENSION_DEP('xsl', 'dom')
	&& CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_XSL", PHP_PHP_BUILD + "\\include\\libxml2")
	) {
		var ext_xsl_lib_found = false;
		var ext_exslt_lib_found = false;

		if (CHECK_LIB("libxslt_a.lib", "xsl", PHP_XSL)) {
			ext_xsl_lib_found = true;
			ADD_FLAG("CFLAGS_XSL", "/D LIBXSLT_STATIC ");
			if (CHECK_LIB("libexslt_a.lib", "xsl", PHP_XSL)) {
				ADD_FLAG("CFLAGS_XSL", "/D LIBEXSLT_STATIC ");
				ext_exslt_lib_found = true;
			}
		} else if (CHECK_LIB("libxslt.lib", "xsl", PHP_XSL)) {
			ext_xsl_lib_found = true;
			if (CHECK_LIB("libexslt.lib", "xsl", PHP_XSL)) {
				ext_exslt_lib_found = true;
			}
		}

		if (ext_xsl_lib_found && CHECK_HEADER_ADD_INCLUDE("libxslt\\xslt.h", "CFLAGS_XSL")) {
			if (ext_exslt_lib_found) {
				if (CHECK_HEADER_ADD_INCLUDE("libexslt\\exslt.h", "CFLAGS_XSL")) {
					AC_DEFINE("HAVE_XSL_EXSLT", 1, "");
				}
			}
			EXTENSION("xsl", "php_xsl.c xsltprocessor.c", PHP_XSL_SHARED);
			AC_DEFINE("HAVE_XSL", 1, "Define if xsl extension is enabled");
			if (! PHP_XSL_SHARED) {
				ADD_FLAG("CFLAGS_XSL", "/D DOM_EXPORTS /D LIBXML_STATIC");
			} else {
				if (PHP_DEBUG == "yes") {
					ADD_FLAG("LDFLAGS_XSL", "/nodefaultlib:msvcrt");
				}
			}

		} else {
			WARNING("xsl not enabled; libraries and headers not found");
		}
	} else {
		WARNING("xsl not enabled; DOM extension required");
	}
}
